Skip to content

fix(shared,testing): ship self-contained published types for shared/cookie and testing/cypress#8841

Merged
jacekradko merged 3 commits into
mainfrom
jacek/fix-break-check-skipped-subpaths
Jun 12, 2026
Merged

fix(shared,testing): ship self-contained published types for shared/cookie and testing/cypress#8841
jacekradko merged 3 commits into
mainfrom
jacek/fix-break-check-skipped-subpaths

Conversation

@jacekradko

@jacekradko jacekradko commented Jun 12, 2026

Copy link
Copy Markdown
Member

Break Check has been skipping @clerk/shared ./cookie and @clerk/testing ./cypress (see the report on #8827) because the published d.ts for both is not self-contained. For shared, the dts bundler drops the import Cookies from 'js-cookie' and ships bare Cookies.CookieAttributes references that no consumer can resolve, since @types/js-cookie is only a devDependency; cookie.ts now declares its own CookieAttributes (same shape as js-cookie's) and uses it in the public signatures. For testing, tsc drops the /// <reference types="cypress" /> directives during declaration emit, so the emitted types lean on the global Cypress namespace without declaring it; preserve="true" carries the directive into the output.

One behavior change to weigh: importing @clerk/testing/cypress now loads cypress's ambient globals (chai/jquery/mocha) in the consumer's program. That is the intended semantics for a cypress-only subpath, and the directive lands only in the cypress d.ts files, but it is new. Verified by rebuilding both packages and re-running break-check: both subpaths snapshot cleanly, and the shipped files compile in isolation with skipLibCheck off.

Summary by CodeRabbit

  • Bug Fixes
    • Ship self-contained cookie attribute types so TypeScript declarations resolve correctly and consumer builds no longer fail under strict type-checking.
    • Update cookie-related type signatures used by auth utilities to prevent type errors in strict TS configurations.
  • Tests
    • Preserve Cypress type references in testing packages so shipped test typings remain intact and type-safe.

@vercel

vercel Bot commented Jun 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
clerk-js-sandbox Ready Ready Preview, Comment Jun 12, 2026 2:33am
swingset Ready Ready Preview, Comment Jun 12, 2026 2:33am

Request Review

@changeset-bot

changeset-bot Bot commented Jun 12, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e9ab171

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 21 packages
Name Type
@clerk/shared Patch
@clerk/testing Patch
@clerk/astro Patch
@clerk/backend Patch
@clerk/chrome-extension Patch
@clerk/clerk-js Patch
@clerk/expo-passkeys Patch
@clerk/expo Patch
@clerk/express Patch
@clerk/fastify Patch
@clerk/hono Patch
@clerk/localizations Patch
@clerk/msw Patch
@clerk/nextjs Patch
@clerk/nuxt Patch
@clerk/react-router Patch
@clerk/react Patch
@clerk/tanstack-react-start Patch
@clerk/ui Patch
@clerk/vue Patch
@clerk/swingset Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: bd68d88a-f832-4528-a17c-5c3d53b9a0bd

📥 Commits

Reviewing files that changed from the base of the PR and between 254b785 and e9ab171.

📒 Files selected for processing (1)
  • packages/shared/src/cookie.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/shared/src/cookie.ts

📝 Walkthrough

Walkthrough

The PR fixes TypeScript declaration resolution issues across two packages. It exports a self-contained CookieAttributes interface from @clerk/shared/cookie to replace unresolvable js-cookie type references, and updates @clerk/testing/cypress type reference directives to preserve Cypress type definitions in published declarations, preventing TS2503 errors when skipLibCheck is disabled.

Changes

TypeScript Declaration Fixes

Layer / File(s) Summary
Cookie type self-containment
.changeset/shared-cookie-self-contained-types.md, packages/shared/src/cookie.ts, packages/clerk-js/src/core/auth/getCookieDomain.ts
Introduces a local CookieAttributes interface with optional fields (expires, path, domain, secure, sameSite, partitioned) and an index signature; exports it from @clerk/shared/cookie. Updates createCookieHandler set and remove method signatures to use this local type instead of Cookies.CookieAttributes, and updates getCookieDomain to accept `Pick<CookieAttributes, 'sameSite'
Cypress type preservation in testing
.changeset/testing-cypress-preserve-types-reference.md, packages/testing/src/cypress/agent-task.ts, packages/testing/src/cypress/custom-commands.ts, packages/testing/src/cypress/setup.ts, packages/testing/src/cypress/setupClerkTestingToken.ts
Updates the TypeScript reference directives in Cypress test files from /// <reference types="cypress" /> to /// <reference types="cypress" preserve="true" /> to retain Cypress type definitions in published @clerk/testing declarations and adds a changeset documenting the patch-level fix.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

clerk-js, testing

Suggested reviewers

  • dstaley
  • wobsoriano

Poem

🐰 I hopped through types both near and far,
Made cookies tidy, no missing bar,
Cypress kept its shining light,
Declarations now all right,
A tiny rabbit cheers the PR tonight!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: fixing type-containment issues in two packages' published TypeScript declarations for self-contained types.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
packages/shared/src/cookie.ts (1)

9-46: Align CookieAttributes with @types/js-cookie (partitioned already supported via index signature)

@types/js-cookie’s CookieAttributes does not define a named partitioned property; it relies on the [property: string]: any index signature to allow additional attributes. The current interface matches that approach, so partitioned is already type-accepted.

Optional: add partitioned?: boolean only if you specifically want better autocomplete/type safety rather than relying on the index signature.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/shared/src/cookie.ts` around lines 9 - 46, The CookieAttributes
interface already allows unrecognized attributes like partitioned via its index
signature ([property: string]: any), so no change is required; if you prefer
stronger typing/autocomplete for "partitioned" add an explicit optional property
partitioned?: boolean to the CookieAttributes interface (referencing the
CookieAttributes declaration and its [property: string]: any index signature)
and leave the rest unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/shared/src/cookie.ts`:
- Line 77: The public method remove(cookieAttributes?: CookieAttributes) is
missing an explicit return type; update its signature to include an explicit
return type (e.g., change to remove(cookieAttributes?: CookieAttributes): void {
... }) to match its synchronous implementation so the public API has a declared
return type.

---

Nitpick comments:
In `@packages/shared/src/cookie.ts`:
- Around line 9-46: The CookieAttributes interface already allows unrecognized
attributes like partitioned via its index signature ([property: string]: any),
so no change is required; if you prefer stronger typing/autocomplete for
"partitioned" add an explicit optional property partitioned?: boolean to the
CookieAttributes interface (referencing the CookieAttributes declaration and its
[property: string]: any index signature) and leave the rest unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 5cd3ee9f-a376-408b-a922-e5abb635bfa4

📥 Commits

Reviewing files that changed from the base of the PR and between c2ba971 and b1fc604.

📒 Files selected for processing (7)
  • .changeset/shared-cookie-self-contained-types.md
  • .changeset/testing-cypress-preserve-types-reference.md
  • packages/shared/src/cookie.ts
  • packages/testing/src/cypress/agent-task.ts
  • packages/testing/src/cypress/custom-commands.ts
  • packages/testing/src/cypress/setup.ts
  • packages/testing/src/cypress/setupClerkTestingToken.ts

Comment thread packages/shared/src/cookie.ts Outdated
@pkg-pr-new

pkg-pr-new Bot commented Jun 12, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8841

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8841

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8841

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8841

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8841

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8841

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8841

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8841

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8841

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8841

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8841

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8841

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8841

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8841

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8841

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8841

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8841

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8841

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8841

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8841

commit: e9ab171

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-06-12T02:35:02.917Z

Summary

Metric Count
Packages analyzed 19
Packages with changes 2
🔴 Breaking changes 0
🟡 Non-breaking changes 0
🟢 Additions 2

Note
Break Check could not snapshot 1 subpath; the diff below excludes them.

  • @clerk/astro ./env: Internal Error: Unable to determine module for: /home/runner/_work/javascript/javascript/packages/astro/env.d.ts You have encountered a software defect. Please consider reporting the issue to the maintainers of this application.

@clerk/shared

Current version: 4.17.1
Recommended bump: MINOR → 4.18.0

Subpath ./cookie

🟢 Additions (1)

Added: ./cookie

New subpath export ./cookie (9 exported members)


@clerk/testing

Current version: 2.1.1
Recommended bump: MINOR → 2.2.0

Subpath ./cypress

🟢 Additions (1)

Added: ./cypress

New subpath export ./cypress (4 exported members)


Report generated by Break Check

Last ran on e9ab171.

@jacekradko jacekradko merged commit 51c8fdc into main Jun 12, 2026
49 checks passed
@jacekradko jacekradko deleted the jacek/fix-break-check-skipped-subpaths branch June 12, 2026 02:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants